如何编写模式以匹配任何8位数,一个字符和一个连字符的序列。
我不擅长写正则表达式
我已经尝试了/([0-9]{8}([-]{1})([a-zA-Z]{1}))
这个,但它只匹配特定序列,也尝试过^(([0-9]{8})([a-zA-Z]{1})([-]{1}))$
但它没有用。
所以请帮我写正则表达式
提前致谢:)
答案 0 :(得分:2)
如果数字,字母和连字符可以按任何顺序混合在一起(如1234k56-78
,请使用这样的正则表达式:
(?=.*[A-Za-z])(?=.*-)(?=(?:.*\d){8}).{10}
如果数字都需要连续,那么使用这样的正则表达式:
(?=.*[A-Za-z])(?=.*-)(?=.*\d{8}).{10}
答案 1 :(得分:0)
这是我的建议:
$url = "https://apis.live.net/v5.0/me/events";
$fuseau = date("P");
$titre = "Hello";
$description = "Welcome to our world";
$data_json = '{ "Subject": "' . $titre . '",
"start_time": "2015-12-22T01:30:00-11:00",
"end_time": "2015-12-22T03:00:00-11:00",
"location": "Coho Vineyard and Winery, 123 Main St., Redmond WA 19532",
"is_all_day_event": false,
"availability": "busy",
"visibility": "public"
}';
$options = array("http" => array( "method" => "POST",
"header" => "Authorization: Bearer $accesstoken \r\n" .
"Content-type: application/json\r\n",
"content" => $data_json
));
$context = stream_context_create($options);
这会使字符串排序,使匹配更容易。
答案 2 :(得分:0)
尝试类似/(\d{8}-\w)/g
\ d {8}匹配数字[0-9]
量词:{8}完全8倍
- 匹配角色 - 字面意思为 \ w匹配任何单词字符[a-zA-Z0-9 _]
如果要捕获匹配的子字符串,( )
就在那里。
示例强>
var str = 'sdsqdsq12348567-adsqds56871239-qdsqs';
var out = str.match(/\d{8}-\w/g);
document.write('<pre>' + out.join('\n') + '</pre>');
&#13;
答案 3 :(得分:0)
我已经解决了这个难题和正则表达式
^(?=.*[A-Za-z])(?=.*[-])(?=(?:.*\d){8}).{10}$
将严格遵守所有条件
感谢您的帮助