<commit_before>regex

1. 匹配反斜杠，'/\\/'或者'/\\\/'都不行，必须用'/\\\\/'，否则报错，见下
参考url http://www.regular-expressions.info/php.html
但在实际测试中发现，用'/\\\/'也能匹配到反斜杠，不过依旧建议用四个反斜杠来匹配单个反斜杠
2. 以下几种都是不捕获的
(?:pattern) 为在匹配位置右侧的内容必须匹配pattern

(?=pattern) 位置右侧的内容必须匹配pattern，但是不占用匹配的内容
(?<=pattern) 与(?=pattern)相反,位置左侧必须匹配，但是不占用匹配的内容
(?=pattern)    <------------->   (?<=pattern)

(?!pattern) 位置右侧的内容不能匹配pattern，但是不占用匹配的内容
(?<!pattern) 与(?!pattern)相反,位置左侧的内容不能匹配pattern，但是不占用匹配的内容
(?!pattern)    <------------->   (?<!pattern) 

会捕获的
(?>pattern)为非回溯子表达式,匹配一次后不会在被用来匹配(可以认为符合pattern匹配后将该pattern对应匹配的字符/字符串删除)



<commit_msg>+ how to match new line in php<commit_after>﻿regex

1. 匹配反斜杠，'/\\/'或者'/\\\/'都不行，必须用'/\\\\/'，否则报错，见下
参考url http://www.regular-expressions.info/php.html
但在实际测试中发现，用'/\\\/'也能匹配到反斜杠，不过依旧建议用四个反斜杠来匹配单个反斜杠
2. 以下几种都是不捕获的
(?:pattern) 为在匹配位置右侧的内容必须匹配pattern

(?=pattern) 位置右侧的内容必须匹配pattern，但是不占用匹配的内容
(?<=pattern) 与(?=pattern)相反,位置左侧必须匹配，但是不占用匹配的内容
(?=pattern)    <------------->   (?<=pattern)

(?!pattern) 位置右侧的内容不能匹配pattern，但是不占用匹配的内容
(?<!pattern) 与(?!pattern)相反,位置左侧的内容不能匹配pattern，但是不占用匹配的内容
(?!pattern)    <------------->   (?<!pattern) 

会捕获的
(?>pattern)为非回溯子表达式,匹配一次后不会在被用来匹配(可以认为符合pattern匹配后将该pattern对应匹配的字符/字符串删除)
3. 匹配换行符(php中) 用PHP_EOL来匹配
参考url：http://stackoverflow.com/questions/8448896/php-preg-match-newline



{'fraction_non_alphanumeric': 0.22408536585365854, 'fraction_numerical': 0.009146341463414634, 'mean_word_length': 4.9411764705882355, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1907297', 'n_tokens_mistral': 869, 'n_tokens_neox': 937, 'n_words': 59}