Tag: expression式

在Express.js中使用会话

我需要帮助理解Web应用程序的会话的概念。 我使用Express 3.0运行Node.js服务器。 我的目标是: 为每个login的用户创build一个会话 存储此会话并用它来validation用户是否已经login(防止两个设备同时使用同一用户),并限制对某些页面的访问(通过将会话ID与其他一些数据进行匹配) 我将使用MemoryStore保存会话(似乎最简单)。 如果上述目标有意义,您可以提供一个彻底的解释如何实现它们?

Vim积极的lookahead正则expression式

我仍然不习惯vim regex的语法。 我有这个代码: rename_column :keywords, :textline_two_id_4, :textline_two_id_4 我想在VIMs正则expression式语法中匹配最后一个id和正向lookahead。 你会怎么做? \id@=_\d$ 这不起作用。 这个Perl语法的作品: id(?=_\d$) 编辑 – 答案: /id\(_\d$\)\@= 有人可以解释的语法?

expression式模板和C ++ 11

让我们来看看expression式模板的一个特别的好处:可以使用ET来避免在重载操作符中出现的内存中的vector大小的临时对象,如: template<typename T> std::vector<T> operator+(const std::vector<T>& a, const std::vector<T>& b) { std::vector<T> tmp; // vector-sized temporary for_each(…); return tmp; } 在C ++ 11中,此函数的返回语句应用移动语义。 vector的副本。 这是一个胜利。 但是,如果我看一下像 d = a + b + c; 我看到上面的函数被调用了两次(对于operator+ ),而最后的赋值可以通过移动语义完成。 总共执行2个循环。 意思是我暂时放了一下,然后马上读回来。 对于大型vector而言,这会超出caching。 这比expression式模板更糟糕。 他们可以在一个循环中完成整个事情。 ET可以执行上面的代码相当于: for(int i=0 ; i < vec_length ; ++i) d[i] = a[i] + b[i] + […]

是否必须在正则expression式的字符类(方括号)中转义点?

点. 在正则expression式中匹配任何单个字符。 为了让正则expression式匹配一个点,点必须被转义: \. 有人指出 ,在方括号内[]一个点不一定要逃脱。 例如,expression式: [.]{3}将匹配…string。 不是吗? 如果是这样,所有正则expression式的标准是真的吗?

为什么这不是Python中的语法错误?

注意到今天我们的代码库中的一行,我认为肯定会有语法错误的构build失败,但testing传递显然是实际上有效的Python(在2.x和3)。 有时在条件expression式中不需要空格: >>> 1if True else 0 1 如果LHS是一个variables,它不起作用: >>> x = 1 >>> xif True else 0 File "<stdin>", line 1 xif True else 0 ^ SyntaxError: invalid syntax 但它似乎仍然适用于其他types的文字: >>> {'hello'}if False else 'potato' 'potato' 这里发生了什么,是故意出于某种原因的语法的一部分? 这种奇怪的怪癖是已知的/记载的行为?

了解负面的前瞻

我正试图了解简单例子中的负向预测是如何工作的。 例如,请考虑以下正则expression式: a(?!b)c 我认为负面的预测匹配一个位置。 因此,在这种情况下,正则expression式匹配任何包含严​​格3个字符且不是abcstring。 但这不是真的,在这个演示中可以看到。 为什么?

正则expression式来匹配一个数字两到四次

这是一个关于正则expression式的简单问题,但我没有find答案。 我想确定一个数字是否按照两到四次顺序出现。 我可以使用什么语法? \d{what goes here?} 我试过\d{2,4} ,但是这个expression式也接受三位数字。

使用sed删除两个匹配模式之间的所有行

我有一个像这样的文件: # ID 1 blah blah blah blah $ description 1 blah blah # ID 2 blah $ description 2 blah blah blah blah 如何使用sed命令删除#和$行之间的所有行? 所以结果会变成: # ID 1 $ description 1 blah blah # ID 2 $ description 2 blah blah blah blah 你能不能请解释一下?

使用正则expression式查找除一个string以外的所有string

我想匹配除string"ABC"之外的所有string。 例: "A" –> Match "F" –> Match "AABC" –> Match "ABCC" –> Match "CBA" –> Match "ABC" –> No match 我尝试了[^ABC] ,但是忽略了"CBA" (和其他人)。

使用正则expression式在Javascript中删除HTML注释

我有一些从Word生成的丑陋的HTML,我想从中剥离所有的HTML注释。 HTML看起来像这样: <!–[if gte mso 9]><xml> <o:OfficeDocumentSettings> <o:RelyOnVML/> <o:AllowPNG/> </o:OfficeDocumentSettings> </xml><![endif]–><!–[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves/> <w:TrackFormatting/> <w:HyphenationZone>21</w:HyphenationZone> <w:PunctuationKerning/> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF/> <w:LidThemeOther>NO-BOK</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:SplitPgBreakAndParaMark/> <w:EnableOpenTypeKerning/> <w:DontFlipMirrorIndents/> <w:OverrideTableStyleHps/> </w:Compatibility> <m:mathPr> <m:mathFont m:val="Cambria Math"/> <m:brkBin m:val="before"/> <m:brkBinSub m:val="--"/> <m:smallFrac m:val="off"/> <m:dispDef/> <m:lMargin m:val="0"/> <m:rMargin m:val="0"/> […]