String 如何在字符串和正则表达式之间切换,而不使用起始词和结束词?
如何在字符串和正则表达式之间进行转换?结果字符串不应包含起始词和结束词?我在谷歌上搜索,没有答案 原始字符串: 所需字符串: xxx.168.x.xxxString 如何在字符串和正则表达式之间切换,而不使用起始词和结束词?,string,expression,between,String,Expression,Between,如何在字符串和正则表达式之间进行转换?结果字符串不应包含起始词和结束词?我在谷歌上搜索,没有答案 原始字符串: 所需字符串: xxx.168.x.xxx 我的正则表达式是: /[\s\s]*(?=/d)结果://xxx.168.x.xxx /[\s\s]*(?=/d)结果://xxx.168.x.xxx 有什么建议吗?谢谢。如果您总是想以这种形式从URL中提取IP地址,您可以使用以下方法: [^/]*(?=/delete) 它的优点是不依赖于查找或捕获组。试试这个:/(.*.168\.*?
我的正则表达式是:
/[\s\s]*(?=/d)结果://xxx.168.x.xxx
/[\s\s]*(?=/d)结果://xxx.168.x.xxx
有什么建议吗?谢谢。如果您总是想以这种形式从URL中提取IP地址,您可以使用以下方法:
[^/]*(?=/delete)
它的优点是不依赖于查找或捕获组。试试这个:/(.*.168\.*?\.*?)/
以Python为例:
>>> p=re.compile('//(.*?\.168\..*?\..*?)/')
>>> s='http://xxx.168.x.xxx/delete/568b96fb75b2'
>>> p.findall(s)
['xxx.168.x.xxx']
>>> p2=re.compile('//[\s\S]*(?=/d)')
>>> p2.findall(s)
['//xxx.168.x.xxx']
>>> p3=re.compile('[^/]*(?=/delete)')
>>> p3.findall(s)
['xxx.168.x.xxx', '']
因为您可能正在检测IP地址,所以这一个可能更好:/([0-9]*?\.168\.[0-9]*?\.[0-9]*?)/
在Python中:
>>> s1='http://192.168.1.1/delete/fjdsafdasfdsa'
>>> p4=re.compile('//([0-9]*?\.168\.[0-9]*?\.[0-9]*?)/')
>>> p4.findall(s1)
['192.168.1.1']
谢谢你的回复。实际上,我的原稿来自一个复杂的字符串:{“Version”:“1.0”,“status”:“0”,“Uri”:“}。我试过你的,结果是/xxx.168.x.xxx。结果字符串的前面有一个正斜杠。奇怪的是,它在开头包含了一个斜杠,[^/]应该匹配任何非斜杠的内容。在正则表达式的开头有多余的斜杠吗?您使用的是什么regex实现?