正则表达式函数将字母和字母与一个数字匹配,它们之间没有空格大家好,
我有一个字符串“9 035 表征 STD4 1 1 的分析活动测试”。我只想匹配“表征 STD4 的测定活性测试”
我尝试使用:Regex( :Sample Name, "\d", "", GLOBALREPLACE );但它降低了 STD 的数量,有什么建议吗?
谢谢
回复:正则表达式函数,用于匹配字母和字母与一个数字之间没有空格非常感谢您的帮助,规则的解释也很有帮助。我发现我需要修剪每一个独立的数字,下面的工作非常完美。
"(\D+(\w+\w))+"
回复:正则表达式函数,用于匹配字母和字母与一个数字之间没有空格Justin 的示例可能很完美,但如果不知道您正在使用的规则,则很难判断。 规则可能是删除所有前导数字和空格,或者可能是从“Assay”开始。 在另一端,规则可能是删除最后两个以空格分隔的数字,或者除最后一个数字之外的所有数字,或者最后一个数字之后与单词相关的所有数字。 这些只是一些可能的规则。 一旦你知道了规则,让正则表达式遵循它就变得更容易了。
如果您对 Justin 的示例感到困惑,请这样阅读:
( ... )+ 表示匹配括号内的内容一次或多次
[az]+ 表示匹配一个或多个字母
\d?表示匹配一位或零位数字
\s 表示匹配一个空格
parens 匹配的每个“单词”都包括一个可选的尾随数字和一个必需的尾随空格,甚至是最后一个单词。 Justin 使用 trim 函数从结果中删除最后的空格。 如果您的数据在最后一个词后可能没有空格,则不会包含最后一个词。
回复:正则表达式函数,用于匹配字母和字母与一个数字之间没有空格您可以匹配要保留的字符串部分,而不是进行全局替换。
此正则表达式适用于您提供的字符串,但如果其他字符串的格式差异太大,则可能无效。
Trim(
Regex(
"9 035 Assay Activity Testing For Characterization STD4 1 1",
"([a-z]+\d?\s)+",
"\0",
IGNORECASE
)
);
日志:
"Assay Activity Testing For Characterization STD4"