正则表达式

Nginx下ThinkPHP5的配置方法详解

早过忘川 提交于 2020-03-23 05:11:27
url里public目录的隐藏 出于安全的考虑,TP5的入口文件改成放在public下了,因为这样的话能防止被恶意用户访问到“/thinkphp/”、“/vendor/”等等这些目录下的文件。所以当你以之前的习惯将网站documentroot配置为项目根目录的时候就会需要在url后面加上/public/来访问。当然可能也会有童鞋把入口文件放回到根目录下,然后还是以之前3.x版那样的形式访问了。 但是很显然,这么做并不是那么的科学。 假设项目目录为“/web/wwwroot/augsky.com”,那么我们在网站的nginx配置文件里面将root配置为: root /web/wwwroot/augsky.com/public; 但是一定要记得将open_basedir设置为上一级项目的根目录下,不然应用会没有权限调用除public目录下的其他文件,网站会报500无法访问。(open_basedir的配置默认在php.ini里面,但如果是多个虚拟机环境的话有可能会在各个网站的user.ini文件里,这个要根据自己的实际情况来。)具体配置如下: open_basedir=/web/wwwroot/augsky.com:/tmp/:/proc/ 隐藏入口文件index.php: location / { try_files $uri $uri/ /index.php?s=$uri&

UltraEdit利用正则表达式查找

陌路散爱 提交于 2020-03-22 17:32:42
UltraEdit 允许在 搜索菜单 下面列出的大多数搜索和替换功能中使用正则表达式。 正则表达式允许在一次操作中执行多个组合搜索和替换功能。 这里有两个可以使用的语法集。下面的第一个表显示用于早期 UltraEdit 的原始 UltraEdit 语法。第二个表显示可选的“Unix”样式的正则表达式。这可以从配置段启用。 正则表达式 ( UltraEdit 语法): 符号 功能 % 匹配行首 - 表示搜索字符串必须在行首,但不包括任何选定的结果字符中的行终止字符。 $ 匹配行尾 - 表示搜索字符串必须在行尾,但不包括任何选定的结果字符中的行终止字符。 ? 匹配任何除换行符的字符。 * 匹配任何除换行符外所出现的任意数量的字符。 + 匹配一个或多个前面的字符/表达式。必须找到至少一个出现的字符。不匹配重复的换行符。 ++ 0 次或多次匹配前面的字符/表达式。不匹配重复的换行符。 ^b 匹配一个分页符。 ^p 匹配一个换行符 (CR/LF) (段落) (DOS 文件) ^r 匹配一个换行符 (仅 CR) (段落) (MAC 文件) ^n 匹配一个换行符 (仅 LF) (段落) (UNIX 文件) ^t 匹配一个制表符 [ ] 匹配任何括号中的单个字符或范围 ^^ 匹配表达式 A 或 B ^ 忽略其后的正则表达式字符 ^(*^) 在表达式加上括号或标签在替换命令中使用。正则表达式中可以有

UltraEdit实现“删除包含某个关键字的所有行”

自古美人都是妖i 提交于 2020-03-22 17:32:22
原文: UltraEdit实现“删除包含某个关键字的所有行” UltraEdit实现“删除包含某个关键字的所有行” 1.Ctrl+R调出“替换对话框” 2.在左下角的“正则表达式”和“从文件顶部全部替换”都打勾(正则表达式引擎用UltraEdit) 3.在“查找内容”后面输入:*select*^p 4.在“替换为”后面置空 5.点击右侧的“全部替换” 但是注意这里的^p只是在unix编码格式中,dos编码格式时要用^n。 UE的DOS格式: 纯文本文件(不包括MAC格式)一般有两种,一种表示行末的是一个“回车+换行”也就是“\r\n”组合,另一种呢,则只有换行,也就是“\n”,这两种格式,一种是DOS格式,另一种一般是Unix系统使用的,所谓转换成DOS格式就是指这种转换了。 下面解释下ultraedit正则表达式: 首先,在UE中需要用户按键到“高级”-“配置”-“搜索”-“正则表达式引擎”中进行使用哪一种正则表达式的选择。如图 如果你选中“UltraEdit风格正则表达式”,在以后的搜索和替换功能中就将使用“UltraEdit风格正则表达式”的语法规则来进行操作,其它同理。 现在的版本里面,还加入了“Perl 兼容正则表达式”,在以后的文章中还有提到。 符号 功能 % 匹配行的开始 - 显示搜索字符串必须在行的开始,但是在所选择的结果字符串中不包括任何行终止字符。 $ 匹配行尾

UltraEdit 与 正则表达式

北战南征 提交于 2020-03-22 17:32:05
UltraEdit 允许在搜索菜单下面列出了的许多搜索和替换功能中使用正则表达式。正则表达式能让更多的复杂的搜索和替换功能变成简单的操作。(中文版界面上显示为“正规表达式”) 有两个可使用的语法集合。下面的第一表显示出在 UltraEdit 的更早的版本被使用的原来的 UltraEdit 句法。第二表给出了可选的"Unix"类型的正则表达式。这可以从配置单元启用。 符号 功能 % 匹配行的开始 - 显示搜索字符串必须在行的开始,但是在所选择的结果字符串中不包括任何行终止字符。 $ 匹配行尾 - 显示搜索字符串必须在行尾,但是在所选择的结果字符串中不包括任何行终止字符。 ? 除了换行符以外匹配任何单个的字符 * 除了换行符匹配任何数量的字符和数字 + 前一字符匹配一个或多个,但至少要出现一个 ++ 前一字符匹配零个或多个,但至少要出现一个 ^b 匹配一个分页 ^p 匹配一个换行符(CR/LF)(段)(DOS文件) ^r 匹配一个换行符(CR 仅仅)(段)(MAC 文件) ^n 匹配一个换行符 ( LF 仅仅 )( 段 )( UNIX 文件 ) ^t 匹配一个标签字符TAB [] 匹配任何单个的字符,或在方括号中的范围 ^{A^}^{ B^} 匹配表达式A或 B ^ 重载其后的正规表达式字符 ^(^) 括或标注为用于替换命令的表达式。 一个正则表达式最多可以有9个标注表达式,

java正则表达式

我们两清 提交于 2020-03-22 17:11:56
这是一个检测时间格式是否正确的方法,例如2020-03-22 1 public static boolean isValidateRunningDate(String input) { 2 //正则匹配 3 Matcher matcher = null; 4 boolean result = false; 5 String regex = "[0-9]{4}-[0-9]{2}-[0-9]{2}"; 6 if (input != null && !input.isEmpty()) { 7 Pattern pattern = Pattern.compile(regex); 8 matcher = pattern.matcher(input); 9 } 10 if (matcher != null) { 11 result = matcher.matches(); 12 } 13 return result; 14 } 来源: https://www.cnblogs.com/fxw-learning/p/12546803.html

字符串----正则表达式的匹配

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-22 17:00:59
题目:请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配 当模式中的第二个字符不是“*”时: a.如果字符串第一个字符和模式中的第一个字符相匹配,那么字符串和模式都后移一个字符,然后匹配剩余的。 b.如果 字符串第一个字符和模式中的第一个字符相不匹配,直接返回false。 而当模式中的第二个字符是“*”时: 如果字符串第一个字符跟模式第一个字符不匹配,则模式后移2个字符,继续匹配。如果字符串第一个字符跟模式第一个字符匹配,可以有3种匹配方式: a.模式后移2字符,相当于x*被忽略; b.字符串后移1字符,模式后移2字符; c.字符串后移1字符,模式不变,即继续匹配字符下一位,因为*可以匹配多位; function match(s, pattern) { // write code here if (s == null || pattern == null) { return false } return checkMatch(s, pattern, 0, 0) } function checkMatch(s, pattern, i, j)

正则表达式

家住魔仙堡 提交于 2020-03-22 03:57:15
建议放大观看 入门案例 理解(位置 类型 个数)的含义 基本语法 字符表补充: java 中使用正则, 需要是用”\“ 脱去特殊字符 java中有两种方式使用 正则 ,一种是patton & matcher ; 一种是String , 但本质是一样的。String 底层是patton & Matche java匹配字符实例(使用正则对象) @Test public void e() { // 有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数 int num = 0; int num1 = 0; int num2 = 0; Pattern compile = Pattern.compile( "[\u4E00-\u9FA5]" ); Pattern compile1 = Pattern.compile( "[\\d]" ); Pattern compile2 = Pattern.compile( "[a-zA-Z]" ); String a = "我的世是界是abc圆的1234567"; for (int i = 0; i < a.length(); i++) { Matcher matcher = compile.matcher( a.charAt( i ) + "" ); Matcher matcher1 = compile1.matcher( a

正则表达式

丶灬走出姿态 提交于 2020-03-21 23:39:38
字符 说明 \ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n”匹配换行符。序列“\\”匹配“\”,“\(”匹配“(”。 ^ 匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与“\n”或“\r”之后的位置匹配。 $ 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与“\n”或“\r”之前的位置匹配。 * 零次或多次匹配前面的字符或子表达式。例如,zo* 匹配“z”和“zoo”。* 等效于 {0,}。 + 一次或多次匹配前面的字符或子表达式。例如,“zo+”与“zo”和“zoo”匹配,但与“z”不匹配。+ 等效于 {1,}。 ? 零次或一次匹配前面的字符或子表达式。例如,“do(es)?”匹配“do”或“does”中的“do”。? 等效于 {0,1}。 { n } n 是非负整数。正好匹配 n 次。例如,“o{2}”与“Bob”中的“o”不匹配,但与“food”中的两个“o”匹配。 { n ,} n 是非负整数。至少匹配 n 次。例如,“o{2,}”不匹配“Bob”中的“o”,而匹配“foooood”中的所有 o。“o{1,}”等效于“o+”。“o{0,}”等效于“o*”。 { n , m } M 和 n 是非负整数,其中 n <= m 。匹配至少

OO第一单元总结

旧巷老猫 提交于 2020-03-21 20:14:03
写在开头:因笔者能力有限,分析不够到位,知识不够全面,本文可能纰漏颇多,指导意义不强,见谅! 第一次作业 这相当于是第一次做大型一点的oo作业,面向对象的思想很不成熟( 当然现在也是一样 ),我的代码仅仅停留在面向过程的层面,采取的是“一main到底”的方法,改了好多次好不容易改过了,互测还被砍了好多刀( 我太难了 ),以下是我的写法、想法,一点小经验,也可以说是大家的 错误示范 ,希望不要跟我这样写,不然后面的作业会很痛苦,甚至会gg的。 第一次作业要实现的是高中很熟悉的多项式的求导,当然手算很简单,但是怎么用代码来表示呢,这考察了我们的动手能力以及抽象能力,其实我刚看到这个题,脑子里想的就是一种面向过程的想法,也就是与C语言类似,我可以只写一个Main,然后在里面把所有功能都实现,比如先解析多项式,把项全都提取出来,存到数组里,最后进行求导之后再按顺序输出,看似没有问题,但是写出来后肯定性能会很差,也会被大佬一个测试数据就崩掉,题目要求缩小数据长度,那么怎样缩小数据长度呢?可以通过新建一个Term类,来保存我们应该有的信息,比如指数和系数等,在这个类里面实现每个类应该具备的功能,比如求导,那么如此一来,我们在Main里面就只需要先解析表达式,把多项式分成若干项,再把他们实例化为一个Term对象,存到对应的比较好用的数据结构Hashmap里面,这样,我们可以实现指数相同的项的合并

正则表达式

懵懂的女人 提交于 2020-03-21 14:04:56
反斜杠 \ 将具有语法意义的符号转化成为普通字符 转移字符 多行字符 RegExp(正则表达式) 创建正则表达式 var = /aabb/; // 字面量的创建方式 var = new RegExp(); // 构造函数的创建方式 正则表达式是一个对象 正则表达式修饰符 i 忽略大小写 g 全局匹配 m 多行匹配,能够识别多行 两个方法 reg.test(str) 对一个字符串对象进行判断,如果符合 reg 的规则就返回 true ,否则返回 flase str.match(reg) 文本对象上的方法,参数为 RegExp ,返回一个数组,该数组中的值为满足 reg 的字符串 表达式 [] 一个方括号代表一位,里面的值代表范围 - 代表范围,如0-9 ^ 放在表达式里面代表非( ! ) () 子表达式 | 或子表达式 元字符 \w 单词字符,区间等于[0-9A-z_] \W 非单词字符,区间等于[^\w] \d 数字字符 \D 等于 [^\d] \s 空白字符 [\t\n\r\v\f] \S [^\s] \b 单词边界,(原来我以为单单指的是空格,但是看起来某些情况下值的不是空格) \B 非单词边界 \uXXXX unicode 编码,一共16层 \010000 - \100000 . 是这个吗? [^\r^\n] ,匹配除换行符之外的任何单个字符  量词 贪婪匹配原则,能多就不少