在字符前搜索一个词,在字符后搜索一个词

时间:2019-06-06 06:52:19

标签: regex

我想从字符串中得到两个单词,一个在“ __”之前,另一个在之后。 举个例子:

'?o=-1' # Skip it
'?client__name=Client1&o=-1' # Should return client__name
'?o=-1&product__name=Product1+Test1' # Should return product__name

我最近的是:

after:  (?:__).*[a-z]
before: (\S+?)__

我正在尝试在python中使用它

2 个答案:

答案 0 :(得分:0)

您可以使用

[^\W_]+__[^\W_]+

请参见regex demoits graph

enter image description here

详细信息

  • [^\W_]+-1个或多个字母或数字
  • __-一个__子字符串
  • [^\W_]+-1个或多个字母或数字。

答案 1 :(得分:0)

您可以使用捕获组:

[&?]([^\W_]+__[^\W_]+)=

这将匹配:

  • [&?]匹配&或?
  • (捕获组
    • [^\W_]+__[^\W_]+匹配1个字符char一次(下划线除外),然后匹配__并匹配1次字符char一次除下划线
  • )关闭捕获组
  • =字面上匹配

Regex demo