Regex 正则表达式:在搜索中包含特定表达式
我有以下字符串:Regex 正则表达式:在搜索中包含特定表达式,regex,Regex,我有以下字符串: CHECKING % x j1 (test1^3) @ phi=0 j2 (test2/3) @ phi=1 j3 @ phi=2 j1 (test1^3) @ phi=2 j2 (test2/3) @ phi=3 j3 @ phi=5 CHECKING % x ab (test1^3) @ phi=0 cde (test2/3) @ phi=1 fg @ phi=2 hij (test1^3) @ phi=2 kl (test2/3) @ phi=3 mn @ phi=5
CHECKING % x j1 (test1^3) @ phi=0 j2 (test2/3) @ phi=1 j3 @ phi=2 j1 (test1^3) @ phi=2 j2 (test2/3) @ phi=3 j3 @ phi=5
CHECKING % x ab (test1^3) @ phi=0 cde (test2/3) @ phi=1 fg @ phi=2 hij (test1^3) @ phi=2 kl (test2/3) @ phi=3 mn @ phi=5
我想得到所有的j1
,j2
和j3
以及ab
,cde
。。。所以括号或@
符号前面的所有内容都是分别的,但不知怎么的,我无法让它工作。有人对正则表达式有想法吗
以下是我尝试过的:
([a-zA-Z\]+[0-9]{0,4})\s+\(.{0,9}\)\s+\@
其中:
j1 j2。。。ab cde hij kl
但是它与
j3
、fg
和mn
不匹配,我如何才能在出现时包含(…)
术语?基于您的原始模式,您可以将括号中的部分设置为可选,以捕获没有公式的情况:
([a-zA-Z_]+[0-9]{0,4})\s+(?:\(.{0,9}\))?\s*\@
另一种选择是:
这将查找后跟
\s的单词(
或者后面跟着\s@
你想要j_n
还是想要括号中的值?我想要j_n
然后就用抱歉我的问题不清楚了,让我再问一次如果你想要j
或者括号中的任何东西,如果有,就用Awesome,这正是我想要的可选的东西。所以(:Something)使某物成为可选的?括号后面的?做什么?(?:)是a。然而,关键部分是组后面的?
标记,这使它成为可选的。还要注意以下空白\s*
,它有一个星号量词(零次或多次),因此也是可选的。