我有一个正则表达式,可以抓住我想要的两个单词,但只能从第一行开始。如何扩展表达式以包含每一行。
正则表达式我:ActivityState\s\s*(\w+).*new ActivityState\s*\(\"(\w+)
文字字符串:
public ActivityState StartState = new ActivityState("start");
public ActivityState ThisState = new ActivityState("this");
public ActivityState IsState = new ActivityState("is");
public ActivityState AState = new ActivityState("a");
public ActivityState TestState = new ActivityState("test");
期望的输出:
StartState state
ThisState state
IsState is
AState a
TestState test
答案 0 :(得分:1)
对于一般情况,您可以在正则表达式的末尾添加/ g标志:
ActivityState\s\s*(\w+).*new ActivityState\s*\(\"(\w+)/g
/ g代表全球,这意味着它不会在第一场比赛时停止。
请参阅Demo
根据您的编程语言,这也可以通过几种不同的方式实现,大多数语言都在其功能中内置了这种行为。例如,在python中,如果调用re.findall(pattern,text),则无需在模式中指定/ g标志即可获得相同的行为。