通常,我喜欢正则表达式的挑战,甚至更好 - 解决它们.
但似乎我有一个我无法弄清楚的案例.
我有一串值,用CSV格式的分号分隔,看起来像这样:
123-234;FOO-456;45-67;FOO-FOO;890;FOO-123;11-22;123;123;44-55;098-567;890;123-FOO;
在这一行中,我想匹配所有整数和整数范围,以便稍后提取它们.有可能只有单个值(没有分号).
经过大量的搜索,我设法写了这个表达式:
(?:^|;)(?<range>\d+-\d+)(?:$|;)|(?:^|;)(?<integer>\d+)(?:$|;)
我正在使用的测试字符串:
123123-234;FOO-456;45-67;FOO-FOO;890;FOO-123;11-22;123;123;44-55;098-567;890;123-FOO;123-456123-FOOFOO-123FOO-FOO第1行和第3行正确匹配,第4,5行不正确.
在第2行中,只有一个值正确匹配.
下面是regex101.com一个链接,说明它:https://regex101.com/r/zA7uI9/5
我还需要分别选择整数和范围(在不同的组中).
注意:我发现了一个可以帮助我并尝试答案的问题(通过调整),但它没有用.
用于匹配数字和数字范围的正则表达式
你知道我错过了什么吗?
将"使用"此正则表达式的语言是C#,但我不知道它是否对我的问题有用.
由barlop添加
以下是当前正则表达式给出的匹配,如regex101.com链接所示
并为他的这个测试字符串 123-234;FOO-456;45-67;FOO-FOO;890;FOO-123;11-22;123;123;44-55;098-567;89
123-234
45-67
890
11-22
123
098-567
Run Code Online (Sandbox Code Playgroud)
所以他的正则表达式似乎错过了123中的一个,44-45和最后的89.
嗨伙计们我正在努力建立一个网址清洁工.
我希望得到的URL列表,并删除所有https://,http://,www.从尾后的开始,也是所有文字,等等/.
我试过以下正则表达式 url.replace(/^https?\:\/\/www\./i, "").split('/')[0];
这在一定程度上起作用并输出以下内容
"www.net-temps.com"
"www.toplanguagejobs.com"
"http:"
"peopleready.com"
"nationjob.com"
"http:"
"bluesteps.com"
"https:"
"theguardian.com"
"reddit.com"
"youtube.com"
"https:"
"pgatour.com"
"cultofmac.com"
Run Code Online (Sandbox Code Playgroud)
从以下列表:
'www.net-temps.com',
'www.toplanguagejobs.com',
'http://nychires.com/',
'http://www.peopleready.com/',
'https://www.nationjob.com/',
'http://nationaljobsonline.com/',
'https://www.bluesteps.com/',
'https://medium.freecodecamp.com/how-we-got-our-2-year-old-open-source-project-to-trend-on-github-8c25b0a6dfe9#.nl4985bjz',
'https://www.theguardian.com/uk/business',
'https://www.reddit.com/r/funny/comments/5qzkz4/my_captain_friend_sent_me_this_photo_saudi_prince/',
'https://www.youtube.com/watch?v=Bua8k_CcnuI',
'https://stackoverflow.com/questions/7000995/jquery-removing-part-of-string-after-and-removing-too/7001040#7001040',
'http://www.pgatour.com/fantasy.html',
'http://www.cultofmac.com/464645/apple-spaceship-campus-flyover/'
Run Code Online (Sandbox Code Playgroud)
如果我/www\.从正则表达式中删除它,这很好用,并删除所有https:等,但我也想删除www.它,如果它在那里,不管https:
这是我到目前为止编码的内容
https://jsfiddle.net/xba5x9ro/1/
将来,这将被分类.我想从文本区域运行makeDomainBeautiful并输出到另一个textarea 的URL列表,但我想我会先使用它.
我有正则表达式匹配模式的问题,也限制字符的数量:
例如,我允许数字前缀:
2, 31, 32, 35, 37, 38, 39, 41, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60
那么我只想要数字和整数的最大长度等于9.所以例如数字如:255555555将是好的但31555555555555555不会.
这是我试图解决这个问题,但它不能正常工作:
^( (2|31|32|35|37|38|39|41|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60)+[0-9]* ){9}$
Run Code Online (Sandbox Code Playgroud)