【发布时间】:2021-05-17 00:06:44
【问题描述】:
我正在尝试匹配下面测试字符串中的“FilterField1%3D[value]-FilterValue1%3D[value]”
FilterValue1%3DAT
#InplviewHash988be455-e1fd-4d20-9eec-665972e3de21=FilterField1%3DRelatedMarket-FilterValue1%3D
#InplviewHashb88353b1-3168-430b-89eb-010843e4b917=FilterField1%3DTrackingRef-FilterValue1%3D-FilterField2%3DAnotherRef-FilterValue2%3D-
#InplviewHashb88353b1-3168-430b-89eb-010843e4b917=FilterField1%3DTrackingRef-FilterValue1%3D#InplviewHash988be455-e1fd-4d20-9eec-665972e3de21=FilterField1%3DRelatedMarket-FilterValue1%3DAT
问题是最后它可以以字符串结尾、表示另一个过滤器的破折号或 # 结尾。我可以捕获的哈希和破折号,但结束字符串使整行匹配在“字段..”之后
这是到目前为止我能想到的正则表达式。
/FilterField1.+FilterValue1.*(#|)/gm
正则表达式:https://regexr.com/5t1lk
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
不确定您到底要什么。如果您希望正则表达式仅在没有任何上下文的情况下完全匹配(例如,
/hello/只会匹配“hello”而不匹配“ahelloooo”),您可以在结尾斜杠之前使用$并在您之后使用^开始斜线。 -
它必须与上下文匹配,因为在 FilterValue1%3D[possibleValue] 之后可以有一个值,它可以是空的,它可以有该值,并且紧随其后有一个 # 或一个破折号,这就是正则表达式失败。这是 regexr regexr.com/5t1lk 中的正则表达式
-
不确定你到底想要什么,this 你在找什么?
-
是的,就是这样。你能把它作为答案吗?非常感谢。
标签: javascript regex